package br.unifor.ads.desphouse.enums;

import br.unifor.ads.desphouse.util.ConstantesAmbiente;

/**
 * Enum que possui todas as 
 * conhecidas pelo sistema
 *  
 * @author Alex Girao
 */
public enum LinguaEnum {
	
	PORTUGUES(1L, "Português", "portugues.properties"),
	INGLES(2L, "Inglês","ingles.properties"),
	FRANCES(3L, "Francês","frances.properties"),
	ESPANHOL(4L, "Espanhol","espanhol.properties");
	
	private Long linCodigo;
	private String linDescricao;
	private String linArquivo;
	
	/**
	 * Construtor padrao
	 * 
	 * @param linCodigo
	 * @param linDescricao
	 * @param linArquivo
	 */
	LinguaEnum(Long linCodigo, String linDescricao, String linArquivo){
		this.linCodigo = linCodigo;
		this.linDescricao = linDescricao;
		this.linArquivo = ConstantesAmbiente.DIRETORIO_LINGUAS+linArquivo;
	}
	
	/**
	 * Retorna um Enum da lingua
	 * a partir do codigo
	 * 
	 * @param linCodigo
	 * @return
	 */
	public LinguaEnum getLingua(Long linCodigo){
		for (LinguaEnum lin : values()) {
			if(lin.getLinCodigo().longValue() == linCodigo.longValue()){
				return lin;
			}
		}
		return null;
	}

	//Set's and Get's
	public Long getLinCodigo() {
		return linCodigo;
	}

	public void setLinCodigo(Long linCodigo) {
		this.linCodigo = linCodigo;
	}

	public String getLinDescricao() {
		return linDescricao;
	}

	public void setLinDescricao(String linDescricao) {
		this.linDescricao = linDescricao;
	}

	public String getLinArquivo() {
		return linArquivo;
	}

	public void setLinArquivo(String linArquivo) {
		this.linArquivo = linArquivo;
	}
}
